package com.EAsystem.mapper;

import com.EAsystem.entity.CourseSelection;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
@Mapper
public interface CourseSelectionMapper {

    // 查询所有选课记录
    List<CourseSelection> findAll();

    // 根据ID查询选课记录
    CourseSelection findById(Long id);

    // 根据学生ID查询选课记录
    List<CourseSelection> findByStudentId(Long studentId);

    // 根据课程ID查询选课记录
    List<CourseSelection> findByCourseId(Long courseId);

    // 根据学生ID和课程ID查询选课记录
    CourseSelection findByStudentIdAndCourseId(@Param("studentId") Long studentId, @Param("courseId") Long courseId);

    // 添加选课记录
    int add(CourseSelection courseSelection);

    // 更新选课记录
    int update(CourseSelection courseSelection);

    /**
     * 更新选课记录状态
     * @param id 选课记录ID
     * @param status 状态（0-待审核，1-已选课，2-已退课）
     * @param updateTime 更新时间
     * @return 更新结果（影响行数）
     */
    int updateStatus(@Param("id") Long id, @Param("status") Integer status, @Param("updateTime") String updateTime);

    // 删除选课记录
    int delete(Long id);
}